perm filename WEBHDR.TEX[WEB,ALS] blob sn#623592 filedate 1981-11-20 generic text, type T, neo UTF8
\input basic
\chcode _=13
\def_{\hskip.06em\vbox{\hrule width.3em}} % underline in identifiers
\chcode'272='3072 % colon is a relation in math mode
\parindent 1em % Note that this applies to first line of PASCAL programs

\font c=cmr8
\font m=cmsc10
\font t=cmtt
\def\tt{\:t} \def\sc{\:m}
\let\Z=\let % now you can \send the control sequence \Z
\def\
{\ } % that was a definition of "\<carriage-return>"

\def\yskip{\vskip 3pt}
\def\\#1{\hbox{\it#1\/\hskip.05em}} % italic type for identifiers
\def\{\hbox{\bf#1}}		% boldface type for reserved words
\def\.#1{\hbox{\tt		% typewriter type for strings
	\let\\=\BS % backslash in a string
	\let\'=\RQ % right quote in a string
	\let\`=\LQ % left quote in a string
	\let\↓=\DA % downarrow in a string
	\let\{=\LB % left brace in a string
	\let\}=\RB % right brace in a string
	\let\≠=\NE % neq in a string
	\let\≤=\LE % leq in a string
	\let\≥=\GE % geq in a string
	\let\←=\LA % leftarrow in a string
	\let\ =\SP % space in a string
	\let\⊗=\CX % circle-times sign in a string
	\let\_=\UL % underline in a string
	#1}}
\def\#{\hbox{\tt\char##}} % parameter sign
\def\${\ifmmode{\char'577}\else{\char$}} % dollar sign
\def\↑{\ifmmode{\char'442}\else{\char↑}} % up arrow
\def\to{\mathrel{.\,.}} % double dot, used only in math mode
\def\BS{\char'134 } % backslash in a string
\def\RQ{\char'16 } % right quote in a string
\def\LQ{\char'15 } % left quote in a string
\def\DA{\char'176 } % downarrow in a string
\def\LB{\char'173 } % left brace in a string
\def\RB{\char'175 } % right brace in a string
\def\NE{\spose/=} % neq in a string
\def\LE{\spose\UL<} % leq in a string
\def\GE{\spose\UL>} % geq in a string
\def\LA{\char'137 } % leftarrow in a string
\def\SP{\char'40 } % (visible) space in a string
\def\CX{\char'26 } % circle-times sign in a string
\def\UL{\char'32 } % underline character in a string

\save1\hbox to -1em{\hss} % backspace one em
\save2\hbox to -2em{\hss} % backspace two ems

\def\1{\advcount7by1\hangindent\count7em} % indent one more notch
\def\2{\advcount7by-1} % indent one less notch
\def\3#1{\hfil\penalty#10\hfilneg} % optional break within a statement
\def\4{\copy1} % backspace one notch
\def\5{\hfil\penalty0\hfilneg\hskip2.5em\copy2} % optional break
\def\6{\par\hangindent\count7em\noindent\hskip\count7em\copy2} % forced break
\def\7{\Y\6} % forced break and a little extra space

\def\note#1#2.{\Y\noindent\hangindent2em{\baselineskip9pt\:c#1 #2.\par}}
\def\defin#1{\advcount7 by 2 \1\&{#1 }} % begin `define' or `format'
\def\A{\note{See also}} % cross-reference for multiply defined module names
\def\B{\mathopen{\.{@\{}}} % begin controlled comment
\def\C#1{\30\quad$\{\,$#1$\,\}$} % PASCAL comments
\def\D{\defin{define}} % macro definition
\def\E{\cdot10↑} % exponent in floating point constant
\def\F{\defin{format}} % format definition
\def\J{\.{@&}} % TANGLE's join operation
\def\M#1.{\par\mark{#1}\vfil\penalty-100\vfilneg % beginning of module
	\vskip12ptminus3pt\Q\noindent{\bf#1.\quad}\!}
\def\N#1.#2.{\par\mark{#1}\vfill\eject % beginning of starred module
	\def\rhead{\uppercase{\!#2}}\send0{\Z{#2}{#1}{\count1}}
	\Q\noindent{\bf#1.\quad\!#2.\quad}\!}
\def\O{\hbox{\rm\char'16}} % sign that precedes octal constants
\def\P{\ragged1000000\jjpar1000\hpen10000 % gets into PASCAL mode
	\spaceskip.333em plus2em \xspaceskip.5em plus2em
	\setcount7 2 \1\ \unskip}
\def\Q{\ragged0\jjpar2\hpen50 % gets out of PASCAL mode
	\spaceskip0pt \xspaceskip0pt}
\def\T{\mathclose{\.{@\}}}} % terminate controlled comment
\def\U{\note{This code is used in}} % cross-reference for uses of modules
\def\X#1:#2\X{\ifmmode{\gdef\XX{\null$\null}}\else{\gdef\XX{}} % module name
	\XX$\langle\,$#2\hbox{\:c\hskip.5em#1}$\,\rangle$\XX}
\def\Y{\par\yskip}

\def\lheader{\hbox to1.5em{\:a\hss\count0}\:m\qquad\rhead\hfill\title\qquad
	\:ux\:a\topmark} % top line on left-hand pages
\def\rheader{\:ux\:a\topmark\:m\qquad\title\hfill\rhead\qquad
	\hbox to1.5em{\:a\hss\count0}} % top line on right-hand pages
\def\normaloutput#1#2#3{\vbox to\fullpageheight{
	\if T\titlepage{\gdef\titlepage{F}}
	\else{\hbox to\pagewidth{\vbox to10pt{}\ifeven0{#2}\else{#3}}}
	\vfill#1} % parameter #1 is the page itself
	\setcount1\count0\advcount0} % \count1 is used in \send command
\output{\normaloutput\page\lheader\rheader}

\def\titlepage{T} % this omits the header line at the top of the first page
\def\rhead{} % this running head is set by starred modules
\def\title{} % an optional title can be set by the user
\def\topofcontents{\ctrline{\:g\title}
	\vfill} % this material will start the table of contents page
\def\botofcontents{\vfill} % this material will end the table of contents page
\def\contentspagenumber{0} % default page number for table of contents
\def\pagewidth{6.5truein} % the width of each page, can be changed by the user
\def\pageheight{8.7truein} % the height of each page, can be changed by the user
\def\fullpageheight{9truein} % page height with running heads, can be changed
\def\setpage{\hsize\pagewidth\vsize\pageheight} % do this if changing page size
\setpage
\open0=contents.tex % file that gets table of contents info

\def\inx{\par\vskip6pt % this is done when we are beginning the index
	\output{\save9\page}\eject % eject the page-so-far
	\save9\vbox{\unbox9} % take it out of its box
	\save8\vbox{\vskip\pageheight\vskip-1ht9}\vsize1ht8 % remaining height
	\save8\hbox{\hskip\pagewidth\hskip-20pt}\hsize.5wd8 % column width
	\def\lr{L} % this tells whether the left or right column is next
	\output{\if L\lr{\save8\page\gdef\lr{R}}
		\else{\normaloutput{\vbox to\pageheight{\box9\vss
			\hbox to\pagewidth{\box8\hfil\page}}}\lheader\rheader
			\vsize\pageheight\gdef\lr{L}}}
	\def\+##1, {\par\hangindent2em\noindent##1:\quad} % start of an index entry
	\def\[##1]{$\underline{##1}$} % underlined index entry
	\parindent0pt\P\rm}
\def\fin{\par\vfill\eject % this is done when we are ending the index
	\if L\lr{}\else{\null\eject} % finish the current page
	\open0=tmp.tmp % prepare to read the contents information
	\baselineskip 12pt % prepare to resume 10-point type
	\def\rm{\:a} \def\bf{\:q} \def\it{\:?} \def\tt{\:t} \def\sc{\:m}
	\setpage \output{\normaloutput\page\lheader\rheader}
	\def\titlepage{T} % prepare to output the table of contents
	\setcount0\contentspagenumber % this is needed only if 
	\def\rhead{TABLE OF CONTENTS} % the contents runs more than one page
	\topofcontents
	\hbox to size{\hfil Section\hbox to3em{\hss Page}}
	\def\Z##1##2##3{\hbox to size{\!##1 \leaders\hbox to .5em{.}\hfil\ 
		##2\hbox to3em{\hss##3}}}
	\input contents % read the contents info
	\botofcontents
	\end} % print the contents page(s) and terminate